//package com.cloud.business.config;
//
//import feign.RequestInterceptor;
//import feign.RequestTemplate;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.web.context.request.RequestContextHolder;
//import org.springframework.web.context.request.ServletRequestAttributes;
//
//import java.util.Enumeration;
//import java.util.Objects;
//
///**
// * @description: openFeign配置
// */
//@Configuration
//public class FeignRequestConfig implements RequestInterceptor {
//
//    private String COOKIE_KEY = "Cookie";
//    /**
//     * 标识为通过feign请求过来的
//     */
//    private static final String REQUEST_FROM_FEIGN = "REQUEST_FROM_FEIGN";
//
//    /**
//     * Header信息传递
//     *
//     * @return: void
//     * @author: FuWeiJia
//     * @date: 2021/12/23
//     */
//    @Override
//    public void apply(RequestTemplate requestTemplate) {
//        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
//        if (!Objects.isNull(attributes)) {
//            HttpServletRequest request = attributes.getRequest();
//            if (!Objects.isNull(request)) {
//                String cookie = request.getHeader(COOKIE_KEY);
//                requestTemplate.header(COOKIE_KEY, cookie);
//                Enumeration<String> headerNames = request.getHeaderNames();
//                while (headerNames.hasMoreElements()) {
//                    String name = headerNames.nextElement();
//                    String values = request.getHeader(name);
//                    // 跳过 content-length
//                    if (name.equals("content-length")) {
//                        continue;
//                    }
//                    requestTemplate.header(name, values);
//                }
//                // 标记为通过feign访问
//                requestTemplate.header(REQUEST_FROM_FEIGN, REQUEST_FROM_FEIGN);
//            }
//        }
//
//        // 解决seata的xid未传递
//        String xid = RootContext.getXID();
//        requestTemplate.header(RootContext.KEY_XID, xid);
//    }
//}
